翻訳と辞書
Words near each other
・ Defined daily dose
・ Defined process
・ Definiens
・ Definiens Tissue Studio
・ Defining Dulcie
・ Defining equation
・ Defining equation (physical chemistry)
・ Defining equation (physics)
・ Defining Issues Test
・ Defining length
・ Defining vocabulary
・ Definist fallacy
・ Definist fallacy (disambiguation)
・ Definite Article
・ Definite article reduction
Definite assignment analysis
・ Definite clause grammar
・ Definite description
・ Definite Door
・ Definite quadratic form
・ Definitely Dead
・ Definitely Maybe
・ Definitely Maybe (disambiguation)
・ Definitely Maybe (novel)
・ Definitely Neighbors
・ Definitely Not the Opera
・ Definitely, Maybe
・ Definiteness
・ Definiteness (disambiguation)
・ Definition


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Definite assignment analysis : ウィキペディア英語版
Definite assignment analysis
In computer science, definite assignment analysis is a data-flow analysis used by compilers to conservatively ensure that a variable or location is always assigned to before it is used.
==Motivation==
In C and C++ programs, a source of particularly difficult-to-diagnose errors is the nondeterministic behavior that results from reading uninitialized variables; this behavior can vary between platforms, builds, and even from run to run.
There are two common ways to solve this problem. One is to ensure that all locations are written before they are read. Rice's theorem establishes that this problem cannot be solved in general for all programs; however, it is possible to create a conservative (imprecise) analysis that will accept only programs that satisfy this constraint, while rejecting some correct programs, and definite assignment analysis is such an analysis. The Java and C# programming language specifications require that the compiler report a compile-time error if the analysis fails. Both languages require a specific form of the analysis that is spelled out in meticulous detail. In Java, this analysis was formalized by Stärk et al., and some correct programs are rejected and must be altered to introduce explicit unnecessary assignments. In C#, this analysis was formalized by Fruja, and is precise as well as sound, in the sense that all variables assigned along all control flow paths will be considered definitely assigned. The Cyclone language also requires programs to pass a definite assignment analysis, but only on variables with pointer types, to ease porting of C programs.〔(【引用サイトリンク】 work = Cyclone User's Manual )
The second way to solve the problem is to automatically initialize all locations to some fixed, predictable value at the point at which they are defined, but this introduces new assignments that may impede performance. In this case, definite assignment analysis enables a compiler optimization where redundant assignments — assignments followed only by other assignments with no possible intervening reads — can be eliminated. In this case, no programs are rejected, but programs for which the analysis fails to recognize definite assignment may contain redundant initialization. The Common Language Infrastructure relies on this approach.

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Definite assignment analysis」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.